package com.hand.wfive.loginAndVip;

import android.text.TextUtils;

import org.json.JSONException;
import org.json.JSONObject;

import java.util.HashMap;
import java.util.Map;

import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.observers.ResourceObserver;
import rxhttp.wrapper.param.RxHttp;

public class LoginConfig {

    public static final String paramsIsBuy = "isBuy";

    // 友盟id
    public static final String AppId = "6690e236940d5a4c498b5cf6";
    public static final String UmengId = "6690e236940d5a4c498b5cf6";

    // 网易网盾本机号码一键登录
    public static final String MobileSecretId = "6b8b97624883209bb9f49e6f2152c38f";
    public static final String MobileSecretKey = "f5a7a75207498ed8c03ffb6935e1d3d1";
    public static final String MobileBusinessId = "edb88a3f9c464496a3bd84a0db418b45";

    // 网易云信短信长度
    public static final int CodeLen = 6;

    // 微信Appid
    public static final String WeChatAppId = "wxf483df90465fec0c";
    // 微信商户id
    public static final String WeChatMch_id = "";
    // 微信商户平台的API证书中的密匙key
    public static final String WeChatPrivateKey = "";
    // 微信登录secret
    public static final String WechatAppSecret = "9efba04078c49440498d3fe0cef9a91b";
    // 微信支付成功回调地址
    public static final String WeChatPayCallbackUrl = "https://www.baidu.com/";

    // vip会员提供的功能
    public static final String VIPContent = "";

    // 隐私政策QQ
    public static final String PrivacyQQ = "2551523115";

    // 是否显示客服QQ
    public static boolean ShowQQ = false;
    // 客服QQ
    public static String ServiceQQ = "2447838018";
    // 客服描述
    public static final String ServiceDesc = "客服工作时间：工作日9:00-12:00,14:00-18:00。\n" +
            "非工作日或者节假日时间可以qq留言，客服小姐姐看到消息后会第一时间为您解决处理哦！";
    public static void getQQ() {
        RxHttp.get("https://runduoconfig.oss-cn-hangzhou.aliyuncs.com/kefu_qq.json?OSSAccessKeyId=LTAI4FpaXVGm2tWR41f2NGau&Expires=360001622528447&Signature=B2SBaecympEPmmC5KOJ79Es7Df8%3D")
                .asString()
                .subscribe(new ResourceObserver<String>() {
                    @Override
                    public void onNext(@NonNull String s) {
                        if (!TextUtils.isEmpty(s)) {
                            try {
                                JSONObject jsonObject = new JSONObject(s);
                                if (jsonObject.has("qq")) {
                                    String qq = jsonObject.getString("qq");
                                    if (!TextUtils.isEmpty(qq)) {
                                        LoginConfig.ServiceQQ = qq;
                                    }
                                }
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                        }
                    }

                    @Override
                    public void onError(@NonNull Throwable e) {

                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }

    // 华为账号登录错误码
    private static final Map<Integer, String> HuaweiLoginStatuCode = new HashMap<>();

    public static String getHuaweiLoginStatuMsg(int statusCode) {
        if (HuaweiLoginStatuCode.isEmpty()) {
            // 该错误码一般在silentSignIn接口中出现
            HuaweiLoginStatuCode.put(2002, "应用尚未授权，需要授权");
            // 调用方法的参数不合法，一般是方法使用不当
            HuaweiLoginStatuCode.put(2003, "参数不合法");
            // 授权过程中发生网络错误
            HuaweiLoginStatuCode.put(2005, "网络异常");
            // 独立授权时AccessToken失效
            HuaweiLoginStatuCode.put(2008, "授权失败");
            // 请求华为帐号服务器失败
            HuaweiLoginStatuCode.put(2009, "请求华为帐号服务器失败");
            // 用户点击返回键，取消登录
            HuaweiLoginStatuCode.put(2012, "用户取消登录");
            // 正在登录中，请不要再次登录
            HuaweiLoginStatuCode.put(2013, "正在登录中");
            // 儿童帐号不支持独立授权
            HuaweiLoginStatuCode.put(2026, "儿童帐号不支持独立授权");
        }
        String msg = HuaweiLoginStatuCode.get(statusCode);
        return TextUtils.isEmpty(msg) ? "错误码：" + statusCode : msg;
    }
}
